sgdk
z80_ctrl.h
Go to the documentation of this file.
00001 
00015 #ifndef _Z80_CTRL_H_
00016 #define _Z80_CTRL_H_
00017 
00018 
00019 #define Z80_HALT_PORT                   0xA11100
00020 #define Z80_RESET_PORT                  0xA11200
00021 
00027 #define Z80_RAM_START                   0xA00000
00028 
00033 #define Z80_RAM_END                     0xA01FFF
00034 
00039 #define Z80_RAM                         Z80_RAM_START
00040 
00045 #define Z80_RAM_LEN                     ((Z80_RAM_END - Z80_RAM_START) + 1)
00046 
00051 #define Z80_YM2612                      0xA04000
00052 
00057 #define Z80_BANK_REGISTER               0xA06000
00058 
00064 #define Z80_DRV_COMMAND                 0xA00100
00065 
00070 #define Z80_DRV_STATUS                  0xA00102
00071 
00076 #define Z80_DRV_PARAMS                  0xA00104
00077 
00078 // default command and status value
00079 #define Z80_DRV_COM_PLAY_SFT            0
00080 #define Z80_DRV_COM_STOP_SFT            4
00081 #define Z80_DRV_STAT_PLAYING_SFT        0
00082 #define Z80_DRV_STAT_READY_SFT          7
00083 
00089 #define Z80_DRV_COM_PLAY                (1 << Z80_DRV_COM_PLAY_SFT)
00090 
00095 #define Z80_DRV_COM_STOP                (1 << Z80_DRV_COM_STOP_SFT)
00096 
00101 #define Z80_DRV_STAT_PLAYING            (1 << Z80_DRV_STAT_PLAYING_SFT)
00102 
00107 #define Z80_DRV_STAT_READY              (1 << Z80_DRV_STAT_READY_SFT)
00108 
00109 // channel definition
00110 #define Z80_DRV_CH0_SFT                 0
00111 #define Z80_DRV_CH1_SFT                 1
00112 #define Z80_DRV_CH2_SFT                 2
00113 #define Z80_DRV_CH3_SFT                 3
00114 
00120 #define Z80_DRV_CH0                     (1 << Z80_DRV_CH0_SFT)
00121 
00126 #define Z80_DRV_CH1                     (1 << Z80_DRV_CH1_SFT)
00127 
00132 #define Z80_DRV_CH2                     (1 << Z80_DRV_CH2_SFT)
00133 
00138 #define Z80_DRV_CH3                     (1 << Z80_DRV_CH3_SFT)
00139 
00140 
00146 #define Z80_DRIVER_NULL                 0
00147 
00153 #define Z80_DRIVER_PCM                  1
00154 
00160 #define Z80_DRIVER_2ADPCM               2
00161 
00168 #define Z80_DRIVER_4PCM_ENV             4
00169 
00174 #define Z80_DRIVER_MVS                  5
00175 
00180 #define Z80_DRIVER_TFM                  6
00181 
00188 #define Z80_DRIVER_VGM                  7
00189 
00197 #define Z80_DRIVER_XGM                  8
00198 
00203 #define Z80_DRIVER_CUSTOM               -1
00204 
00205 #define Z80_DRIVER_DEFAULT              Z80_DRIVER_PCM
00206 
00207 
00214 void Z80_init();
00215 
00220 u16  Z80_isBusTaken();
00227 void Z80_requestBus(u16 wait);
00232 void Z80_releaseBus();
00233 
00238 void Z80_startReset();
00243 void Z80_endReset();
00244 
00251 void Z80_setBank(const u16 bank);
00252 
00263 u8 Z80_read(const u16 addr);
00276 void Z80_write(const u16 addr, const u8 value);
00277 
00288 void Z80_clear(const u16 dest, const u16 size, const u16 resetz80);
00301 void Z80_upload(const u16 dest, const u8 *data, const u16 size, const u16 resetz80);
00313 void Z80_download(const u16 from, u8 *dest, const u16 size);
00314 
00331 u16  Z80_getLoadedDriver();
00336 void Z80_unloadDriver();
00355 void Z80_loadDriver(const u16 driver, const u16 waitReady);
00365 void Z80_loadCustomDriver(const u8 *drv, u16 size);
00366 
00371 u16  Z80_isDriverReady();
00372 
00373 
00374 #endif // _Z80_CTRL_H_
 All Classes Files Functions Variables Typedefs Enumerations Defines